A significant expense for computer software (and hardware) manufacturers is the cost of support. In general, the primary mechanism for diagnosing a problem that a user is having with a computer is via telephone. Support calls handled by support technicians come from computer users of widely varying technical skill levels.
As a result, the quality of the support that can be provided is often limited by the technical ability of the customer to verbally describe the problem, as well as the experience of support technician in interpreting what the customer is able to describe. For example, by asking the right questions, an experienced technician may be able to recognize a pattern and lead even a novice computer user to a solution. However, a lesser-experienced support technician may not ask the best questions, and/or may be misled by an answer, or otherwise confused by what a user is describing. This leads to inconsistent support, frustrating users and technicians alike, and generally adding to the cost of support.
One attempt to remove some of the technical responsibilities from the user provided a report tool that essentially gathered megabytes of data from a machine that was having a problem. The data, which took a great deal of time to collect and upload, was then analyzed by a technician. However, the sheer amount and breadth of the data made such analysis very difficult, and often did not result in a solution being found.
What is needed is a consistent way for users and support technicians to interact to resolve computer problems. The support should make it as simple as possible for users to participate, should be consistent for technical support staff, and facilitate automation to the extent available.